feat(onboarding): add goal-driven readiness flow - #613
Merged
Conversation
beruro
force-pushed
the
junyu/onboarding-readiness-flow
branch
from
August 4, 2026 04:25
71ab58f to
358dde0
Compare
beruro
changed the base branch from
backup/uncommitted-pr-cleanup-20260730
to
develop
August 4, 2026 04:25
beruro
force-pushed
the
junyu/onboarding-readiness-flow
branch
from
August 4, 2026 05:18
358dde0 to
cf28ebc
Compare
beruro
force-pushed
the
junyu/onboarding-readiness-flow
branch
from
August 4, 2026 05:27
cf28ebc to
0822c4c
Compare
beruro
marked this pull request as ready for review
August 4, 2026 05:40
Harry19081
approved these changes
Aug 6, 2026
Harry19081
approved these changes
Aug 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
New installs could skip a coherent setup path, and the sidebar onboarding checklist did not reliably route users into organization creation, teammate invitation, team usage, or the main-page tour.
The simplified Quick setup page also shifted its primary button label when either terminal action started closing: Button inserted a loading spinner while the arrow remained inside
children, widening the centered content group.Additionally, the sidebar guide was configured to open by default, causing it to reappear on every app launch despite the one-time handoff being persisted. Its upward chevron also read as expansion instead of collapse toward the bottom-bar trigger.
Solution
Rebuild the readiness flow on current
develop, keep setup progress resumable, add compact preference setup and an application preview, and turn the sidebar checklist into real navigation with targeted spotlights. The guide opens organization setup, member invitation, Runtime team usage, and the general layout tour without duplicating authoritative domain state. It also adds developer-only scenario controls and localized copy for all supported locales.The primary Quick setup action now owns its arrow through Button's fixed 16px right icon slot. Complete and Skip share the guarded closing transition, where the spinner replaces that arrow in place; successful persistence navigates once, duplicate actions are ignored, and failure restores both actions for retry.
The guide now starts closed and auto-opens only while the persisted handoff is
pending; displaying it consumes the handoff toshown, so later launches remain closed while the manual trigger stays available. The header now uses a downward chevron to indicate collapsing toward the trigger.Potential risks
The one-time behavior depends on settings persistence. If that write fails,
pendingis intentionally retained and retried on a later launch; no persistence schema or domain data changed.The change spans first-run routing, sidebar navigation, organization management presentation, Runtime navigation, and shared dropdown/progress primitives. A changed lazy-loaded surface or stale target could leave a spotlight in fallback mode. Existing organization/runtime data is not mutated by the guide; guide intents are one-shot runtime state. The two packaged desktop E2E specs and post-rebase visual capture remain follow-up evidence; the routing, progress persistence, guide targets, navigation intents, localization, frontend type/lint boundaries, system-services integration, and terminal-action state transitions are covered by the committed test suite and checks. Rollback is a source revert; persisted guide progress uses settings fields with safe defaults and does not migrate domain data.
The closing-layout regression is verified at the rendered Button DOM boundary, including equal idle/loading icon width, but has not been re-recorded in a packaged Tauri window.
Verification
InlineAlert.test.ts,SetupWalkthroughSidebar.test.ts, andSidebarGuideButton.test.ts— 3 files / 15 tests passed on merge commit60242e583.pnpm typecheck— passed on merge commit60242e583.git diff --cached --check— passed.SidebarGuideButtonESLint and Prettier checks — passed.pnpm typecheck— passed on the latest PR HEAD.develop.npm run typecheck— passed after the rebase;pnpm run typecheckpassed for the follow-up snapshot.git diff --check— passed for the follow-up.rustfmt --edition 2021 --check src-tauri/crates/system-services/src/app_menu.rs— passed.cargo check --manifest-path src-tauri/Cargo.toml -p system_services— passed.git diff --check origin/develop...HEAD— passed for the rebuilt PR.developand was unrelated to onboarding; the PR has no net ProgressBar diff.Not run:
tests/e2e/specs/core/setup-walkthrough-shortcut-ui.spec.mjs,tests/e2e/specs/core/setup-walkthrough-ui.spec.mjs, and packaged desktop visual capture across themes/viewport constraints. The browser shell cannot provide the required Tauri runtime.Integration notes
developat243b99a0e0fd925097f2d468dd6d25b1e6571c96via merge commit60242e583; retained the expandedInlineAlertAPI and current GitHub timeline copy while preserving the onboardingroleandswitchMethodbehavior.backup/junyu-onboarding-readiness-flow-pre-rebuild-20260804.bd84e6e.